home *** CD-ROM | disk | FTP | other *** search
/ Ham Radio 2000 #2 / Ham Radio 2000 - Volume 2.iso / HAMV2 / MISC / HCAL-27 / DECIBEL.BAS (.txt) < prev    next >
Encoding:
GW-BASIC  |  1997-01-28  |  2.6 KB  |  99 lines

  1. 10  'DECIBEL - 01 DEC 93 rev. 27 SEP 96
  2. 20  IF EX$=""THEN EX$="EXIT"
  3. 30  CLS:KEY OFF
  4. 40  COLOR 7,0,1
  5. 50  LF=1/LOG(10)   'factor to convert natural log to log\base 10
  6. 60  UL$=STRING$(80,205)
  7. 70  C1=3:C2=30:C3=57     'column margins
  8. 80  '
  9. 90  '.....start
  10. 100  CLS:F1=0:F2=0:F3=0:DB=0
  11. 110  COLOR 15,2
  12. 120  PRINT " DECIBELS";TAB(57);"by George Murphy VE3ERP ";
  13. 130  COLOR 1,0:PRINT STRING$(80,223);
  14. 140  COLOR 7,0
  15. 150  PRINT TAB(C1);"Press number in < > to select factor you want to";
  16. 160  COLOR 0,7:PRINT " FIND ";:COLOR 7,0:PRINT ":"
  17. 170  PRINT UL$;
  18. 180  PRINT TAB(C1);"POWER";TAB(C2);"VOLTAGE";TAB(C3);"CURRENT"
  19. 190  PRINT TAB(C1);"SOUNDSOUNDSOUNDSOUNDSOUND";TAB(C2);"SOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUND";TAB(C3);"SOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUND"
  20. 200  PRINT TAB(C1);"<1> WATTS in (source)";
  21. 210  PRINT TAB(C2);"<4> VOLTS in (source)";
  22. 220  PRINT TAB(C3);"<7> CURRENT in (source)"
  23. 230  PRINT TAB(C1);"<2> WATTS out (load)";
  24. 240  PRINT TAB(C2);"<5> VOLTS out (load)";
  25. 250  PRINT TAB(C3);"<8> CURRENT out (load)"
  26. 260  PRINT TAB(C1);"<3> dB gain/loss";
  27. 270  PRINT TAB(C2);"<6> dB gain/loss";
  28. 280  PRINT TAB(C3);"<9> dB gain/loss"
  29. 290  PRINT UL$;
  30. 300  COLOR  0,7:LOCATE CSRLIN,30
  31. 310  PRINT " or Press <0> to EXIT "
  32. 320  COLOR 7,0
  33. 330  I$=INKEY$:IF I$=""THEN 330
  34. 340  IF I$="0"THEN CLS:RUN EX$
  35. 350  IF ASC(I$)<49 OR ASC(I$)>57 THEN 330
  36. 360  IF VAL(I$)>=1 AND VAL(I$)<=3 THEN GOSUB 400:GOTO 580
  37. 370  IF VAL(I$)>=4 AND VAL(I$)<=6 THEN GOSUB 460:GOTO 580
  38. 380  IF VAL(I$)>=7 AND VAL(I$)<=9 THEN GOSUB 520:GOTO 580
  39. 390  '
  40. 400  '.....power variables
  41. 410  N$="Power"
  42. 420  DIN=VAL(I$)    'data input number
  43. 430  M=10           'multiplier
  44. 440  RETURN
  45. 450  '
  46. 460  '.....voltage variables
  47. 470  N$="Voltage"
  48. 480  DIN=VAL(I$)-3  'data input number
  49. 490  M=20           'multiplier
  50. 500  RETURN
  51. 510  '
  52. 520  '.....current variables
  53. 530  N$="Current"
  54. 540  DIN=VAL(I$)-6  'data input number
  55. 550  M=20           'multiplier
  56. 560  RETURN
  57. 570  '
  58. 580  '.....data input
  59. 590  VIEW PRINT 3 TO 24:CLS:VIEW PRINT:LOCATE 3
  60. 600  PRINT TAB(C1);" Input and Output values are expressed in the same ";
  61. 610  PRINT "unit of measurement."
  62. 620  PRINT UL$;
  63. 630  IF DIN<>1 THEN PRINT" ENTER ";N$;" in (source):";:LOCATE CSRLIN,30:INPUT F1
  64. 640  IF DIN<>2 THEN PRINT" ENTER ";N$;" out (load):";:LOCATE CSRLIN,30:INPUT F2
  65. 650  IF DIN<>3 THEN PRINT" ENTER ";N$;" dB gain/loss:";:LOCATE CSRLIN,30:INPUT DB
  66. 660  '
  67. 670  '.....calculation
  68. 680  IF F1 * F2 THEN DB=LF*M*LOG(F2/F1):GOTO 720
  69. 690  IF F1 * DB THEN F3=10^(DB/M):F2=F3*F1:GOTO 720
  70. 700  IF F2 * DB THEN F3=10^(DB/M):F1=F2/F3:GOTO 720
  71. 710  '
  72. 720  '.....print results
  73. 730  LOCATE 5
  74. 740  PRINT TAB(8);N$;" in (source):";TAB(28);USING "###,###.###";F1
  75. 750  PRINT TAB(8);N$;" out (load):";TAB(28);USING "###,###.###";F2
  76. 760  PRINT TAB(8);N$;" gain/loss:";TAB(28);USING "+######.###";DB;:PRINT " dB"
  77. 770  PRINT UL$;
  78. 780  GOTO 810
  79. 790  END
  80. 800  '
  81. 810  '.....end
  82. 820  GOSUB 860
  83. 830  GOTO 90
  84. 840  END
  85. 850  '
  86. 860  'HARDCOPY
  87. 870  GOSUB 980:LOCATE 25,2:COLOR 14,6
  88. 880  PRINT " Press 1 to print screen, 2 to print screen & ";
  89. 890  PRINT "advance paper, or 3 to continue.";:COLOR 7,0
  90. 900  Z$=INKEY$:IF Z$="3"THEN GOSUB 980:RETURN
  91. 910  IF Z$="1"OR Z$="2"THEN GOSUB 980:GOTO 930
  92. 920  GOTO 900
  93. 930  FOR QX=1 TO 24:FOR QY=1 TO 80
  94. 940  LPRINT CHR$(SCREEN(QX,QY));
  95. 950  NEXT QY:NEXT QX
  96. 960  IF Z$="2"THEN LPRINT CHR$(12)
  97. 970  GOTO 870
  98. 980  LOCATE 25,1:PRINT STRING$(80,32);:RETURN
  99.